home *** CD-ROM | disk | FTP | other *** search
/ BMUG Revelations / BMUG Revelations.toast / Programming / Programming Languages / Yerk 3.64 / Supplement / Demo Folder / Sin < prev    next >
Text File  |  1986-01-23  |  2KB  |  62 lines

  1. ( Sine - sin table )
  2.  
  3.  
  4. :CLASS TrigTable  <Super wArray
  5.  
  6.     4 bArray    Signs       \ 1 if negative in quadrant
  7.     4 Array     AxisVals    \ 90 degree values
  8.  
  9.     \ ( deg -- sin )  Lookup a sin * 10000 of an angle
  10.     :M  SIN: { degree  -- sin }
  11.         degree 90 /Mod  3 And    swap -> degree   
  12.         degree  0=   
  13.         IF   At: AxisVals ( axes are Boundary cond)
  14.         ELSE dup 1 and  ( mirror quadrants 1,3)
  15.             IF  90 degree  -
  16.             ELSE  degree THEN   
  17.             At: Self  Swap 
  18.             At: Signs IF  negate THEN
  19.         THEN   ;M
  20.  
  21.     :M  COS:  270 + Sin: Self  ;M
  22.  
  23.     :M  CLASSINIT:  0 0 To: Signs   0 1 To: Signs  
  24.                     1 2 To: Signs   1 3 To: Signs 
  25.                     0 0 To: AxisVals   10000 1 To: AxisVals  
  26.                     0 2 To: AxisVals   -10000 3 To: AxisVals ;M
  27.  
  28. ;CLASS
  29.  
  30. 90 TrigTable Sines  \ system-wide table of sines
  31.  
  32. \ (  val  angle -- )  Fill a Sin table entry
  33. : 's   To: Sines  ;
  34. 00000 00 's  00175 01 's 00349 02 's 00524 03 's 00698 04 's
  35. 00872 05 's  01045 06 's 01219 07 's 01392 08 's 01571 09 's
  36. 01736 10 's  01908 11 's 02079 12 's 02250 13 's 02419 14 's
  37. 02588 15 's  02756 16 's 02924 17 's 03090 18 's 03256 19 's
  38. 03420 20 's  03584 21 's 03746 22 's 03907 23 's 04067 24 's
  39. 04226 25 's  04384 26 's 04540 27 's 04695 28 's 04848 29 's
  40. 05000 30 's  05150 31 's 05299 32 's 05446 33 's 05592 34 's
  41. 05736 35 's  05878 36 's 06018 37 's 06157 38 's 06293 39 's
  42. 06428 40 's  06561 41 's 06691 42 's 06820 43 's 06947 44 's
  43. 07071 45 's  07193 46 's 07314 47 's 07431 48 's 07547 49 's
  44. 07660 50 's  07771 51 's 07880 52 's 07986 53 's 08090 54 's
  45. 08192 55 's  08290 56 's 08387 57 's 08480 58 's 08572 59 's
  46. 08660 60 's  08746 61 's 08829 62 's 08910 63 's 08988 64 's
  47. 09063 65 's  09135 66 's 09205 67 's 09272 68 's 09336 69 's
  48. 09397 70 's  09455 71 's 09511 72 's 09563 73 's 09613 74 's
  49. 09659 75 's  09703 76 's 09744 77 's 09781 78 's 09816 79 's
  50. 09848 80 's  09877 81 's 09903 82 's 09925 83 's 09945 84 's
  51. 09962 85 's  09976 86 's 09986 87 's 09994 88 's 09998 89 's
  52.  
  53. : Sin  Sin: Sines ;
  54. : Cos  Cos: Sines ;
  55.  
  56. :CLASS Angle  <Super Int
  57.  
  58.    :M  SIN:   Get: Self Sin   ;M
  59.    :M  COS:   Get: Self Cos   ;M
  60.  
  61. ;CLASS
  62.